#include "conexion.h"
#include "string.h"

int conexion_procesar_envios(conexion *origen){
  void *datos;
  int size;
  if(cola_hay_datos(origen->mensajes_salientes))
    procesar_paquete_saliente(&(origen->paquete_saliente), &(origen->mensajes_salientes));
  paquete_saliente_a_socket_preparar(&(origen->paquete_saliente), &datos, &size);
  if(size!=0){
    int e = conexion_write(origen, datos, size);
    paquete_saliente_a_socket_resultado(&(origen->paquete_saliente), e);
  }
}

int conexion_procesar_recepciones(conexion *c){
  void *datos;
  int size;
  paquete_entrante_que_pedir(&(c->paquete_entrante), &datos, &size);
  int e = conexion_read(c, datos, size);
  paquete_entrante_mas_datos(&(c->paquete_entrante), e);
  procesar_paquete_entrante(&(c->paquete_entrante), &(c->mensajes_entrantes));
}

